<?php
class DeudasController extends AppController 
{
	var $name = 'Deudas';
	var $layout =  "ajax";
	var $components = array('Interfaz','Vista');
	var $helpers = array('Interfaz','Vista','Ayuda');
	var $uses = array('Deuda','Productor','Liquidacion');//,'Modulo_sistema','Accion_sistema','Opcion_sistema','Sistema_modulo_sistema','Sistema_modulo_accion','Usuario_sistema','Modulo_accion_opcion','Usuario','Permiso');

	public function beforeFilter(){
  		$this->validar();
  	}
  	
 	function index()
	{
 	}

 	public function Listado_deudas($busq=null) {
 		$busq = (strpos($busq, 'menuadmin') === false) ? $busq : null; 			
		$this->set('busq',$busq);
 		$this->permisos_menu_individual('deudas');
 		$tipo_usuario=$this->Interfaz->id($this->Session->read('tipo_usuario'));
		$tienda_id=$this->Interfaz->id($this->Session->read('tienda_id'));
		$total=$this->Deuda->find('count',array('conditions'=> array("Deuda.id >"=>'0')));
		$data=$this->Deuda->find('all',array('fields'=>array('Deuda.id','Deuda.monto','Deuda.fecha','Deuda.actual','Productor.nombre','Productor.ced_rif','Productor.telefono','Productor.celular','Deuda.usuario_id','Deuda.estatus'),'conditions'=> array("Deuda.id >"=>'0'),'limit'=>MAX_PAGI));
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		$this->set('data',$data);
		$this->Vista->title('Listado de Deuda Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
		//$this->log(1);
	}

	public function nuevo() 
	{	
		$this->permisos_accion_individual('deudas','nuevo'); // mensaje que se quiere mostrar
	}

	public function dato_productor($cedrif=null){
		if(isset($cedrif)){
			$cedrif=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($cedrif));
			$d=$this->Productor->find('first',array('conditions'=> array("Productor.ced_rif"=>$cedrif)));
			if(isset($d['Productor']['id']) && $d['Productor']['id'] > 0){
				$deuda= $this->Interfaz->miles($this->Deuda->deuda_del_productor($d['Productor']['id']),2);
				echo "<script type='text/javascript'>
					document.getElementById('productor_id_deuda').value='".$d['Productor']['id']."';
					document.getElementById('cedrif').value='".$this->Interfaz->cedulaguion($d['Productor']['ced_rif'])."';
					document.getElementById('nombres').value='".$d['Productor']['nombre']."';
					document.getElementById('monto_deuda').value='".$deuda."';
				</script>";
			}
			else{
				echo "<script type='text/javascript'>
					document.getElementById('productor_id_deuda').value='0';
					document.getElementById('nombres').value='';
					document.getElementById('monto_deuda').value='0';
				</script>";
			}
		}
		$this->render("../".PRINCIPAL."/mensajes");
	}

	public function guardar() {
		$this->permisos_accion_individual('deudas','nuevo'); // mensaje que se quiere mostrar
		$data=$this->request->data;
		if(!$this->Vista->empyt($data,array('deuda'))){
			$ban=1;$des_deuda="";$des_monto="";
			extract($data);
			$this->Deuda->query('BEGIN WORK');
			$dPro['Deuda']['monto']=$this->Interfaz->miles_postgres($monto_nueva_deuda);
			$dPro['Deuda']['usuario_id']=$this->Interfaz->id($this->Session->read('usuario_id'));
			$dPro['Deuda']['productor_id']=$productor_id_deuda;
			$dPro['Deuda']['actual']=$this->Interfaz->miles_postgres($monto_nueva_deuda);

			if($this->Deuda->save($dPro)){
				$this->Vista->mensaje("Deuda Guardada Exitosamente!!!",'EXITO');
				$this->Deuda->query('COMMIT');
				$this->Vista->cerrar_ventana($vent_nuevo_deuda);
				$this->log();
			}
			else{
				$this->Vista->mensaje("Ocurrio un error Guardando deuda",'ERROR');
				$this->Deuda->query('ROLLBACK');	
			}			
		}
		$this->Listado_deudas();
		$this->render('Listado_deudas');
	}

	public function anular_deuda($id=null){
		if(isset($id)){
			$id=$this->Interfaz->id($id);
			if(is_numeric($id)){
				$ban=1;
				$pagos=$this->Liquidacion->find('all',array('fields'=>array('Liquidacion.id','Liquidacion.deudas_cobradas'),'conditions'=>array('Liquidacion.deudas_cobradas like '=>"%$id%")));
				if(count($pagos)>0){
					for($j=0;$j< count($pagos);$j++){
						$ids=explode(',',$pagos[$j]['Liquidacion']['deudas_cobradas']);
						if(in_array($id, $ids)){
							$ban=0;
							break;
						}
					}
				}
				if($ban==1){
					$d['Deuda']['id']=$id;
					$d['Deuda']['estatus']=0;
					$d['Deuda']['actual']=0;
					if($this->Deuda->save($d)){
						$this->Vista->mensaje('Deuda Anulada exitosamente!!!','EXITO');
						$this->log();
					}
					else{
						$this->Vista->mensaje('Ocurrio un Error Anulando Deuda','ERROR');
					}
				}
				else{
					$this->Vista->mensaje('no se Puede anular la Deuda ya tiene Pagos Asociados','ERROR');
				}
			}
			else{
				$this->Vista->mensaje('Estas tratando de violar la seguridad de Agropatria','ERROR');
			}
		}
		$this->Listado_deudas();
		$this->render('Listado_deudas');
	} 

}
